package com.zc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

/**
 * @description: 定时任务线程池
 * @author: cong
 * @create: 2025/3/7
 */
@Configuration
public class SchedulerConfig {
    /**
     * 创建一个ThreadPoolTaskScheduler bean，用于异步执行任务
     * 该方法配置了线程池的大小和线程名称前缀，以满足多任务并发执行的需求
     *
     * @return ThreadPoolTaskScheduler实例，用于任务调度
     */
    @Bean
    public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
        // 实例化ThreadPoolTaskScheduler对象
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();

        // 设置线程池大小为10，表示可以同时执行的最大线程数
        threadPoolTaskScheduler.setPoolSize(10);

        // 设置线程名称前缀，以便于在日志中识别
        threadPoolTaskScheduler.setThreadNamePrefix("threadPoolTaskScheduler-");

        // 返回配置好的ThreadPoolTaskScheduler对象
        return threadPoolTaskScheduler;
    }
}
